﻿using ProyectoDeTesis.Controladores;
using System;
using System.Linq;
using System.Collections.Generic;
using System.Windows.Forms;

namespace ProyectoDeTesis.Vistas
{
    public partial class AdministrarTarea : Form
    {
        private VueloController vueloController = new VueloController();
        private int pantalla_id = 27;
        private int vuelo_id_seleccionado = 0;
        public AdministrarTarea()
        {
            InitializeComponent();
            rdtFechaFin.Value = DateTime.Now.Date;
            rdtFechaInicio.Value = DateTime.Now.Date;
        }

        private void btnNuevaTarea_Click(object sender, EventArgs e)
        {
            NuevaTarea nueva = new NuevaTarea();
            nueva.ShowDialog(this);
        }

        private void btnCancelarTarea_Click(object sender, EventArgs e)
        {
            if (vuelo_id_seleccionado > 0)
            {
                vueloController.desasignarVuelo(vuelo_id_seleccionado);
                cargarTabla();
            }
            else
            {
                FormError form = new FormError("Debe seleccionar una fila primero.");
                form.ShowDialog(this);
            }
        }

        private void cargarTabla()
        {
            DateTime inicio = rdtFechaInicio.Value;
            DateTime fin = rdtFechaFin.Value;
            string usuario = tbxUsuario.Text;

            List<ProyectoDeTesis.Vuelo> listaVuelos = vueloController.obtenerVuelosAsignadosAprobados(inicio, fin, usuario);

            if (listaVuelos.Count > 0)
            {
                BindingSource bindingSource1 = new BindingSource();

                bindingSource1.DataSource = (from v in listaVuelos
                                         select new { v.id, v.num_vuelo, v.PerfilPersonal.nombre, v.PerfilPersonal.ap_paterno, v.PerfilPersonal.ap_materno, v.fecha_salida, v.hora_salida });

                dgvResultados.DataSource = bindingSource1;
            
                estiloDataGridView(dgvResultados);
            }
        }

        private void BtnLimpiar_Click(object sender, EventArgs e)
        {
            rdtFechaFin.Value = DateTime.Now.Date;
            rdtFechaInicio.Value = DateTime.Now.Date;
            tbxUsuario.Text = "";
        }

        private void BtnSearch_Click(object sender, EventArgs e)
        {
            cargarTabla();
        }

        private void estiloDataGridView(DataGridView dataGridView)
        {
            dataGridView.Columns[0].Visible = false;
            dataGridView.Columns[1].HeaderText = "Número de vuelo";
            dataGridView.Columns[2].HeaderText = "Nombres";
            dataGridView.Columns[3].HeaderText = "Apellido Paterno";
            dataGridView.Columns[4].HeaderText = "Apellido Materno";
            dataGridView.Columns[5].HeaderText = "Fecha Salida";
            dataGridView.Columns[6].HeaderText = "Hora Salida";

            dataGridView.Columns[1].Width = 80;
            dataGridView.Columns[2].Width = 130;
            dataGridView.Columns[3].Width = 180;
            dataGridView.Columns[4].Width = 180;
            dataGridView.Columns[5].Width = 90;
            dataGridView.Columns[6].Width = 90;

        }

        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex > -1)
            {
                DataGridViewRow row = dgvResultados.Rows[e.RowIndex];

                vuelo_id_seleccionado = Convert.ToInt32(row.Cells[0].Value);
            }
        }
    }
}
